This invention relates generally to interactive computer-aided illustration systems for making precise drawings of user-specified objects. Specifically, it relates to a system for emulating the drawing tools employed by draftsmen to create such drawings in various two-dimensional and three-dimensional geometries.
When creating technical illustrations by hand, graphic artists have traditionally relied upon standard drawing tools such as a compass, ruler, technical pen, french curve, and transfer screen. However, this system is inefficient and tedious for complex illustrations, especially when an artist is creating three-dimensional views of objects on two-dimensional display systems.
Computer-aided illustration systems have automated these tasks. These systems represent each element (lines, shapes, letter forms) as an independent object with its own attributes. In such a system, instead of creating an entire line by drawing continuously, as one would do by hand, the user plots only those points necessary to define the line. For example, the user places "anchor" and "control" points with a pointing device (such as a "mouse"). Next, the computer generates the object specified by these points. The real power of such object-based systems lies in their ability to rapidly create precise geometric images and to manipulate an image by maneuvering its control points.
Typically, computer-aided illustration systems provide the artist with a set of simple drawing tools or graphic primitives from which he or she may generate more complicated constructs. The geometric relation between the individual elements in a drawing may be critical, yet an artist's hand can rarely achieve the mathematical precision of a computer-based illustration system. Thus special cursor-positioning techniques were developed.
For example, Sutherland describes a positioning technique based upon the use of a light pen (Sutherland, Sketchpad: A Man-machine Graphical Communication System, Proceedings--Spring Joint Computer Conference, 1963). In that implementation, a user aims a light pen at a picture part. The exact location of the light pen is ignored in favor of a "pseudo pen location" which is exactly on the part aimed at. If no object is aimed at, the pseudo pen location and actual pen location are identical. Thus this system compensates for the user's imprecise cursor placement by locking onto a point on the existing drawing.
Sutherland also describes a system of constraint satisfaction. Here a user is able to specify to the system mathematical conditions on previously drawn parts, which are automatically satisfied by the computer to make the drawing take the exact shape desired. In other words, a constraint is a rule that the input coordinates must obey.
There are several different types of constraint systems based on the solution of simultaneous equations. See, for example, Newman, Principles of Interactive Computer Graphics, McGraw-Hill, 1979. A common constraint is the "modular constraint" which forces the input point to lie on a stationary grid. In linear geometry, for example, the system displays a two-dimensional array of grid dots at user-specified intervals. Control points placed by the user are mapped to the nearest grid point. Thus, the grid guides the artist in the placement of control points. In contrast to this "fully constrained" grid, one may use a "partially constrained" grid. For example, a linear grid may be partially constrained either horizontally or vertically. In such a system, control points are confined to lie on grids which are either horizontal or vertical lines. Regardless of the type, grids are characteristically easy to implement and learn. Nevertheless, the grid system only provides a limited degree of the exactness required for precision drawings. Additional constraints must usually be superimposed on such systems.
"Directional constraints" force input points to lie along user-specified lines. For example if a system is horizontally constrained, only horizontal lines may be drawn. While constraint-oriented systems have the power to achieve many different types of precision, still further types of drawing aids have been developed for use in lieu of, or in addition to, constraints.
Bier discloses "gravity-active" points and "alignment objects." See, Bier, Snap-Dragging, SIGGRAPH '86 Proceedings, Vol. 20, No. 4, Aug. 18-22, 1986, 233-240. Bier's concept, as embodied in the Gargoyle system, made use of a "caret." While the cursor always moves with the mouse, the caret "snaps" to gravity-active points. Control points are placed at the position of the caret. Gargoyle includes gravity at object edges and at intersections of objects. Object edge gravity provides snap along the outline of an object. Intersection gravity occurs at the intersections of object lines or outlines.
Alignment objects are visible construction aids that emulate the draftsman's tools, such as a ruler and compass. The user requests the construction of alignment objects in two steps. First, the user identifies those vertices and segments in the scene at which the alignment lines should be constructed; these are now "hot." Next the user specifies a drawing command, for example, lines. Gargoyle combines the vertices and segments made "hot" with others suggested by heuristics. The resulting vertices and segments are called "triggers" which may trigger the construction of alignment objects.
While grid and constraint systems have been recently implemented in non-linear angular geometry, present systems are still of limited usefulness for drawing two-dimensional views of three dimensional objects. For example, Xerox Pro Illustrator (version 2.0) provides a limited moving grid system for angular geometries. The angular grid is a polar grid with axes at evenly spaced fixed angles. The origin lies at the last control point placed by the user. The next control point is constrained to lie on a grid axis. The control points may be further constrained to fixed intervals on the axes.
Directional constraints are used in the Xerox Pro Illustrator (version 2.0), as in other systems, to further constrain or confine the drawing area. The system can be "horizontally constrained" so that a control point may only be placed if it is horizontally aligned with the prior control point, regardless of where the hardware cursor is located. Similarly, a vertically constrained control point would necessarily be vertically aligned with the preceding control point.
In Xerox Pro Illustrator (version 2.0) gravity is limited to control points. Control point gravity enables one to lock on to an object's control points. An ellipse, for example, has nine control points.
The limited moving grids, gravity, and directional constraints of Xerox Pro Illustrator (version 2.0) and other prior systems are useful for linear and angular geometries, but these tools are still not ideally suited for drawing common two-dimensional representations of three-dimensional objects, such as paraline and perspective projections. There is a need for a computer-aided illustration system which provides a consistent geometric orientation permitting the user to easily create illustrations of different geometries on two-dimensional surfaces.